A prior flash erasable and electrically programmable read-only memory ("flash EPROM") is typically organized into rows and columns. Memory cells are placed at intersections of word lines and bit lines. Each word line is connected to the gate of a plurality of memory cells in one row. Each bit line is connected to the drain of a plurality of memory cells in one column. The sources of all the memory cells can be connected to a common source line. The prior flash EPROM can be programmed, and once programmed, the entire content of the prior flash EPROM can be erased by electrical erasure. A high erasing voltage V.sub.PP is made available to the source of all the cells simultaneously. This results in a full array erasure. The prior art flash EPROM may then be reprogrammed with new data.
One disadvantage of this prior flash EPROM structure is the characteristics of array erasure. When changes are sought to be made to a program stored in the array, the entire array must be erased and the entire program be rewritten into the array, even when the changes are minor.
One prior approach to solving this problem is to reorganize the array into blocks so that the high erasing voltage is made available only to the source of every cell within one block to be erased. In this arrangement, each block can be individually addressed for read, programming, and erasure operations.
One disadvantage associated with this memory configuration is that data stored in one memory block may be inadvertently erased during a programming or erasure operation of another memory block of the prior flash EPROM. The inadvertent programming or erasure in that memory block may occur when an error in an address for another memory block directs the operation to a memory location in that memory block. The inadvertent operation in that memory block then causes damage to the data integrity in that memory block. Typically, some of the memory blocks in the flash EPROM store data that requires less amount of data update than data stored in other memory blocks. Therefore, a mechanism is required to lock individual memory blocks in the memory array temporarily from being programmed or erased.